Uniqueness Typing for Functional Languages with Graph Rewriting Semantics
نویسندگان
چکیده
We present two type systems for term graph rewriting: conventional typing and (polymorphic) uniqueness typing. The latter is introduced as a natural extension of simple algebraic and higher-order uniqueness typing. The systems are given in natural deduction style using an inductive syntax of graph denotations with familiar constructs such as let and case. The conventional system resembles traditional Curry-style typing systems in functional programming languages. Uniqueness typing extends this with reference count information. In both type systems, typing is preserved during evaluation, and types can be determined eeectively. Moreover, with respect to a graph rewriting semantics, both type systems turn out to be sound.
منابع مشابه
Graph Rewriting Semantics for Functional Programming Languages
The lambda calculus forms without any question *the* theoretical backbone of functional programming languages. For the design and implementation of the lazy functional language Concurrent Clean we have used a related computational model: Term Graph Rewriting Systems (TGRS's). This paper wraps up our main conclusions after 10 years of experience with graph rewriting semantics for functional prog...
متن کاملUniqueness Typing in Natural Deduction Style
We present two type systems for graph rewriting: conventional typing and (polymorphic) uniqueness typing. The latter is introduced as a natural extension of simple algebraic and higher-order uniqueness typing. The systems are given in natural deduction style using an inductive syntax of graph denotations with familiar constructs such as let and case. The conventional system resembles traditiona...
متن کاملUniqueness Typing in Theory and Practice
We present uniqueness typing as an extension of a familiar Curry style typing system for graph rewrite systems. This provides a method for combining purely functional programming with operations having side-eeects, while preserving the functional nature of the language. We give a technical account as well as the underlying intuition. The system is shown to be eeective in the sense that a unique...
متن کاملCLEAN: a programming environment based on term graph rewriting
The main features of the lazy functional language Concurrent Clean and of its semantics based on Term Graph Rewriting are presented. 1 History The pure, lazy functional language Concurrent Clean (version 1.0) is a major upgrade of the previous release (0.84b) of Clean ((3,10,11]). Clean was originally designed as an experimental intermediate language and deliberately kept syntactically as poor ...
متن کاملConventional and Uniqueness Typing in Graph Rewrite Systems
In this paper we describe a Curry-like type system for graphs and extend it with uniqueness information to indicate that certain objects are onlyìocally accessible'. The correctness of type assignment guarantees that no external access on such an object will take place in the future. We prove that types are preserved under reduction (for both type systems) for a large class of rewrite systems. ...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید
ثبت ناماگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید
ورودعنوان ژورنال:
- Mathematical Structures in Computer Science
دوره 6 شماره
صفحات -
تاریخ انتشار 1996